using System;
using MetaObjects.Contracts;

namespace MetaObjects.Core
{
	public abstract class MapperBase<TSource, TTarget> : Mapper<TSource, TTarget>
	{
		public MapperBase()
		{
			Map = MapInternal;
		}

		public MapperBase(Func<TSource, TTarget> map) : base(map)
		{

		}

		protected abstract TTarget MapInternal(TSource source);
	}
}